<!DOCTYPE html>
<html>

<head lang="en">
	<link rel="shortcut icon" href="#"/>
	<meta charset="UTF-8">
	<title>注册</title>
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport"
		  content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
	<meta name="format-detection" content="telephone=no">
	<meta name="renderer" content="webkit">
	<meta http-equiv="Cache-Control" content="no-siteapp"/>
	<link rel="stylesheet" href="./AmazeUI-2.4.2/assets/css/amazeui.min.css"/>
	<link href="./css/dlstyle.css" rel="stylesheet" type="text/css">
	<script src="./AmazeUI-2.4.2/assets/js/jquery.min.js"></script>
	<script src="./AmazeUI-2.4.2/assets/js/amazeui.min.js"></script>
	<script src="js/plugins/vue/dist/vue.js"></script>
	<script src="js/plugins/axios/dist/axios.js"></script>
	<script src="js/common.js"></script>

</head>

<body>

<div class="login-boxtitle">
	<a href="home/demo.html"><img alt="" src="./images/logobig.png"/></a>
</div>

<div class="res-banner">
	<div class="res-main">
		<div class="login-banner-bg"><span></span><img src="./images/big.jpg"/></div>
		<div class="login-box">

			<div class="am-tabs" id="doc-my-tabs">
				<ul class="am-tabs-nav am-nav am-nav-tabs am-nav-justify">
					<li class="am-active"><a href="">邮箱注册</a></li>
					<li><a href="">手机号注册</a></li>
				</ul>

				<div class="am-tabs-bd">
					<!--邮箱注册-->
					<div class="am-tab-panel am-active" id="emailRegister">
						<form method="post">

							<div class="user-email">
								<label for="email"><i class="am-icon-envelope-o"></i></label>
								<input type="email" v-model="EmailForm.email" name="" id="email" placeholder="请输入邮箱账号">
							</div>
							<div class="user-pass">
								<label for="password"><i class="am-icon-lock"></i></label>
								<input type="password" v-model="EmailForm.password" name="" id="password" placeholder="设置密码">
							</div>
							<div class="user-pass">
								<label for="passwordRepeat"><i class="am-icon-lock"></i></label>
								<input type="password" name="" v-model="EmailForm.confirmpassword" id="passwordRepeat" placeholder="确认密码">
							</div>

							<div class="verification">
								<label for="code"><i class="am-icon-code-fork"></i></label>
								<input type="tel" v-model="EmailForm.emailCodeValue" name="" id="code" placeholder="请输入验证码">
								<buton class="btn"  @click="sendEmail" id="sendEmailCode">获取</buton>
							</div>

						</form>

						<div class="login-links">
							<label for="reader-me">
								<input id="reader-me" type="checkbox"> 点击表示您同意商城《服务协议》
							</label>
						</div>
						<div class="am-cf">
							<input type="submit" name="" @click="emailRegister" value="注册" class="am-btn am-btn-primary am-btn-sm am-fl">
						</div>

					</div>
					<!--手机号注册-->
					<div class="am-tab-panel" id="phoneRegister">
						<form method="post">
							<div class="user-phone">
								<label for="phone"><i class="am-icon-mobile-phone am-icon-md"></i></label>
								<input type="tel" name="" v-model="phoneRegisterForm.phone" id="phone" placeholder="请输入手机号">
							</div>
							<div class="user-phone">
								<label for="imageCode"><i class="am-icon-check am-icon-sm"></i></label>
								<input type="text" name="" style="width: 180px;" v-model="phoneRegisterForm.imageCodeValue" id="imageCode" placeholder="请输入图片验证码">
								<img id="captcha-image-temp" @click="getImageCode":src="imageCode"  class="captcha-image-temp"  alt="点击换图" title="点击换图" style="vertical-align: middle; cursor: pointer;">
							</div>
							<div class="verification">
								<label for="code"><i class="am-icon-code-fork"></i></label>
								<input type="tel" v-model="phoneRegisterForm.smsCodeValue" name="" id="code" placeholder="请输入验证码">
								<buton class="btn"  @click="sendMobileCode" id="sendMobileCode">获取</buton>
							</div>
							<div class="user-pass">
								<label for="password"><i class="am-icon-lock"></i></label>
								<input type="password"v-model="phoneRegisterForm.password" name="" id="password" placeholder="设置密码">
							</div>
							<div class="user-pass">
								<label for="passwordRepeat"><i class="am-icon-lock"></i></label>
								<input type="password" v-model="phoneRegisterForm.confirmpassword" name="" id="passwordRepeat" placeholder="确认密码">
							</div>
						</form>
						<div class="login-links">
							<label for="reader-me">
								<input id="reader-me" type="checkbox"> 点击表示您同意商城《服务协议》
							</label>
						</div>
						<div class="am-cf">
							<input type="submit" @click="phoneRegister" name="" value="注册" class="am-btn am-btn-primary am-btn-sm am-fl">
						</div>

						<hr>
					</div>

					<script>
						$(function () {
							$('#doc-my-tabs').tabs();
						})
					</script>

				</div>
			</div>
		</div>
	</div>

	<div class="footer ">
		<div class="footer-hd ">
			<p>
				<a href="# ">恒望科技</a>
				<b>|</b>
				<a href="# ">商城首页</a>
				<b>|</b>
				<a href="# ">支付宝</a>
				<b>|</b>
				<a href="# ">物流</a>
			</p>
		</div>
		<div class="footer-bd ">
			<p>
				<a href="# ">关于恒望</a>
				<a href="# ">合作伙伴</a>
				<a href="# ">联系我们</a>
				<a href="# ">网站地图</a>
				<em>© 2015-2025 Hengwang.com 版权所有. 更多模板 <a href="http://www.cssmoban.com/" target="_blank" title="模板之家">模板之家</a>
					- Collect from <a href="http://www.cssmoban.com/" title="网页模板" target="_blank">网页模板</a></em>
			</p>
		</div>
	</div>
	<script type="text/javascript">
		new Vue ({
			el:"#emailRegister",
			data:{
				EmailForm:{
					email:"",
					password:"",
					imageCodeCodeKey:"",
					confirmpassword:"",
					emailCodeValue:"",
				}
			},
			methods:{
				sendEmail() {
					// 1.判断邮箱不为空
					if(!this.EmailForm.email){
						alert("邮箱号不能为空");
						return;
					}
					// // 3.获取按钮，禁用按钮
					// var sendBtn = $(event.target);
					// sendBtn.attr("disabled",true);

					// 4.uuid赋值
					// 2.2.判断当前浏览器本地是否有key值，没有则生成，有则直接使用
					if(!this.EmailForm.imageCodeCodeKey || this.EmailForm.imageCodeCodeKey === ''){
						this.EmailForm.imageCodeCodeKey = this.createUuid();
						localStorage.setItem("registerImageCodeKey",this.EmailForm.imageCodeCodeKey);
					}

					console.log(this.EmailForm.imageCodeCodeKey)

					//5.发送ajax请求
					this.$http.post("/verifyCode/emailCode",this.EmailForm).then(res=>{
						console.log(res.data);
						var ajaxResult = res.data;
						if(ajaxResult.success){
							alert("邮箱验证码已经发送到您的邮箱，请在3分钟内使用");
							//5.1.发送成：倒计时
							var time = 60;
							var interval = window.setInterval( function () {
								//每一条倒计时减一
								time = time - 1 ;

								//把倒计时时间搞到按钮上
								sendBtn.html(time+"秒后重发");
								//5.2.倒计时完成恢复按钮
								if(time <= 0){
									sendBtn.html("重新发送");
									sendBtn.attr("disabled",false);
									//清除定时器
									window.clearInterval(interval);
								}
							},1000);
						}else{
							//5.3.发送失败：提示，恢复按钮
							sendBtn.attr("disabled",false);
							alert("发送失败:"+ajaxResult.msg);
						}
					})
				},
				emailRegister() {
					// // 前端进行两次密码校验
					// if (this.phoneRegisterForm.password == this.phoneRegisterForm.confirmpassword) {
					// 	alert("两次密码输入不一致");
					// 	return
					// }
					this.$http.post("/register/email",this.EmailForm).then(result=>{
						console.log("---------------------")
						console.log(result)
						console.log("---------------------")
						if (result.data.success) {
							console.log("---------------------")
							// 跳转到首页
							location.href = "index.html";
						} else {
							// 提示用户错误信息
							alert(result.msg);
						}
					})
				},
				// 生成UUID的方法
				createUuid(){
					var s = [];
					var hexDigits = "0123456789abcdefghi";
					for (var i = 0; i < 36; i++) {
						s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
					}
					s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
					s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
					s[8] = s[13] = s[18] = s[23] = "-";

					var uuid = s.join("");
					return uuid;
				},
			}
		}),

		// 手机号
		new Vue({
			el:"#phoneRegister",
			data:{
				// 最终的图形验证码base64
				imageCode:"",
				// 前缀
				imageCodePrefix:"data:image/jpeg;base64,",
				phoneRegisterForm: {
					phone:"",
					imageCodeValue:"",
					imageCodeCodeKey:"",
					confirmpassword:"",
					password:"",
					smsCodeValue:"",
					type:"register"
				}
			},
			methods:{

				phoneRegister() {
					// // 前端进行两次密码校验
					// if (this.phoneRegisterForm.password == this.phoneRegisterForm.confirmpassword) {
					// 	alert("两次密码输入不一致");
					// 	return
					// }
					this.$http.post("/register/smsCode",this.phoneRegisterForm).then(result=>{
						console.log("---------------------")
						console.log(result)
						console.log("---------------------")
						if (result.data.success) {
							console.log("---------------------")
							// 跳转到首页
							location.href = "index.html";
						} else {
							// 提示用户错误信息
							alert(result.msg);
						}
					})
				},
				sendMobileCode(event){
					// 1.判断手机号不为空
					if(!this.phoneRegisterForm.phone){
						alert("手机号不能为空");
						return;
					}
					// 2.判断图片验证码不为空
					if(!this.phoneRegisterForm.imageCodeValue){
						alert("图片验证码不能为空");
						return;
					}
					// 3.获取按钮，禁用按钮
					var sendBtn = $(event.target);
					sendBtn.attr("disabled",true);

					// 4.给图形验证码RedisKey赋值
					this.phoneRegisterForm.imageCodeCodeKey = localStorage.getItem("registerImageCodeKey");

					//5.发送ajax请求
					this.$http.post("/verifyCode/smsCode",this.phoneRegisterForm).then(res=>{
						console.log(res.data);
						var ajaxResult = res.data;
						if(ajaxResult.success){
							alert("手机验证码已经发送到您的手机，请在3分钟内使用");
							//5.1.发送成：倒计时
							var time = 60;
							var interval = window.setInterval( function () {
								//每一条倒计时减一
								time = time - 1 ;

								//把倒计时时间搞到按钮上
								sendBtn.html(time+"秒后重发");
								//5.2.倒计时完成恢复按钮
								if(time <= 0){
									sendBtn.html("重新发送");
									sendBtn.attr("disabled",false);
									//清除定时器
									window.clearInterval(interval);
								}
							},1000);
						}else{
							//5.3.发送失败：提示，恢复按钮
							sendBtn.attr("disabled",false);
							alert("发送失败:"+ajaxResult.msg);
						}
					})
				},

				// 生成UUID的方法
				createUuid(){
					var s = [];
					var hexDigits = "0123456789abcdefghi";
					for (var i = 0; i < 36; i++) {
						s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
					}
					s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
					s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
					s[8] = s[13] = s[18] = s[23] = "-";

					var uuid = s.join("");
					return uuid;
				},

				// 获取图形验证码
				getImageCode(){
					// 2.1.从localStorage中获取UUID
					let imageCodeKey = localStorage.getItem("registerImageCodeKey");
					// 2.2.判断当前浏览器本地是否有key值，没有则生成，有则直接使用
					if(!imageCodeKey || imageCodeKey === ''){
						imageCodeKey = this.createUuid();
						localStorage.setItem("registerImageCodeKey",imageCodeKey);
					}
					// 2.3.发送Axios请求，传递UUID，得到图形验证码的Base64字符串
					this.$http.get("/verifyCode/image/"+imageCodeKey).then(res=>{
						// 2.3.1.将接口返回的图形验证码Base64字符串码+前缀赋值给模型中的imageCode字段
						this.imageCode = this.imageCodePrefix+res.data.resultObj;
					})
				}

			},
			mounted(){
				this.getImageCode()
			}
		})
	</script>
</div>

</body>
</html>